]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
7 years agocleanup: Replace signal connections with virtual functions
Marco Trevisan (Treviño) [Tue, 10 Sep 2019 05:42:48 +0000 (07:42 +0200)]
cleanup: Replace signal connections with virtual functions

Inheriting from actors allows to use virtual functions instead of signal
connections for multiple cases, so just use them when possible.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agost/button: Add the clicked button to virtual function signature
Marco Trevisan (Treviño) [Tue, 15 Oct 2019 19:13:59 +0000 (21:13 +0200)]
st/button: Add the clicked button to virtual function signature

clicked signal includes a clicked mouse button parameter, but the vfunc
signature doesn't include it, so it won't be passed to the functions when
the signal is emitted.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agopageIndicators: Use Clutter.Orientation as orientation parameter
Marco Trevisan (Treviño) [Tue, 10 Sep 2019 05:36:58 +0000 (07:36 +0200)]
pageIndicators: Use Clutter.Orientation as orientation parameter

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agodocs: Update `actor` and `delegate_` paragraph in HACKING
Marco Trevisan (Treviño) [Tue, 28 May 2019 06:30:10 +0000 (08:30 +0200)]
docs: Update `actor` and `delegate_` paragraph in HACKING

Deprecate the usage of the `actor` property, while keep the `_delegate` part
as it is needed for DnD for now.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agooverview: Make public properties read-only
Marco Trevisan (Treviño) [Sat, 31 Aug 2019 02:04:34 +0000 (04:04 +0200)]
overview: Make public properties read-only

Overview's animationInProgress, visible and visibleTarget properties are not
meant to be modified from others, but be read only.

So make this clearer using properties getters and private values.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agoavatar: Use Property bindings to sync reactivity
Marco Trevisan (Treviño) [Fri, 30 Aug 2019 23:32:03 +0000 (01:32 +0200)]
avatar: Use Property bindings to sync reactivity

Instead of manually updating properties on change, use native properties
bindings to keep the them synchronized.

Disable hover-tracking and focus-ability when the avatar is not sensitive.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agowindowManager: Inherit WindowDimmer from Clutter.BrightnessContrastEffect
Marco Trevisan (Treviño) [Wed, 28 Aug 2019 19:56:53 +0000 (21:56 +0200)]
windowManager: Inherit WindowDimmer from Clutter.BrightnessContrastEffect

As result add the effect to the actor on the caller function.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agocalendarMessageList: Remove sections map and use clutter children
Marco Trevisan (Treviño) [Sat, 31 Aug 2019 18:41:16 +0000 (20:41 +0200)]
calendarMessageList: Remove sections map and use clutter children

Now that the calendar message list and the message sections are actors, there's
no need to keep track of the sections in a different Map as we can just use the
native clutter functions to manage the children and access to their properties.

Also cleanup the signal connection/disconnection.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agomessageList: Use St.Bin as message container and use clutter to manage the list
Marco Trevisan (Treviño) [Mon, 13 May 2019 18:02:26 +0000 (20:02 +0200)]
messageList: Use St.Bin as message container and use clutter to manage the list

When messages are added to the message list, we create a container for those,
however since now the messages are actor themselves we can just create a list
item actor that holds the message actor and refer to the message parent in order
to get their container.

This allows to remove the obj container map we used, using the native clutter
parent-child hierarchy and handle signal connections cleanly.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agolookingGlass: Use resultsArea to keep track of results
Marco Trevisan (Treviño) [Mon, 20 May 2019 21:25:14 +0000 (23:25 +0200)]
lookingGlass: Use resultsArea to keep track of results

Now that results are actors we can just use their container to keep
track of them

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agosearch: Define SearchResultInterface and implement valid results with it
Marco Trevisan (Treviño) [Wed, 16 Oct 2019 10:38:48 +0000 (12:38 +0200)]
search: Define SearchResultInterface and implement valid results with it

Since all the search result classes are now GObject classes, we can enforce
the methods we want to have in there (just activate() for now) using an
interface, to make sure they are implementing what we require and to easily
group all the classes that can be used as search results, even though they
are not extending SearchResult.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agocleanup: Use inheritance for Actor classes instead of composition
Marco Trevisan (Treviño) [Tue, 16 Jul 2019 09:24:13 +0000 (11:24 +0200)]
cleanup: Use inheritance for Actor classes instead of composition

Remove the `this.actor = ...` and `this.actor._delegate = this` patterns in most
of classes, by inheriting all the actor container classes.

Uses interfaces when needed for making sure that multiple classes will implement
some required methods or to avoid redefining the same code multiple times.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agoscreenshot: Pass a Graphene.Point as PickPixel 'finished' signal
Marco Trevisan (Treviño) [Mon, 2 Sep 2019 23:51:00 +0000 (01:51 +0200)]
screenshot: Pass a Graphene.Point as PickPixel 'finished' signal

This will allow to pass the data as native object when porting this to Clutter
actor.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agoscreenshot: Return a Meta.Rectangle as geometry
Marco Trevisan (Treviño) [Sat, 13 Jul 2019 00:17:20 +0000 (02:17 +0200)]
screenshot: Return a Meta.Rectangle as geometry

Since the geometry is used as a signal parameter, this can't be used when using
a GObject based class, so use the Meta boxed type instead of a JS object.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agooverview: Add OverviewActor and use as main actor of the Overlay
Marco Trevisan (Treviño) [Sat, 31 Aug 2019 01:51:02 +0000 (03:51 +0200)]
overview: Add OverviewActor and use as main actor of the Overlay

Use the Overview class as controller, while create the actual overlay actor
using a GObject-derived class.

Replace actual properties with getter-only properties.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agomessageTray: Dispose Source on destruction
Marco Trevisan (Treviño) [Tue, 14 May 2019 02:03:51 +0000 (04:03 +0200)]
messageTray: Dispose Source on destruction

Dispose the Source Object when dispose() is called, avoiding that it could be
called twice on a destroyed Source.

So, notify count changes before destroying the object, and don't emit this
twice on destroyNonResidentNotifications (as if a notification is destroyed
the property notify will happen in the notification destroy callback anyways).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agomessageTray: Dispose Notification on destroy
Marco Trevisan (Treviño) [Tue, 14 May 2019 01:58:58 +0000 (03:58 +0200)]
messageTray: Dispose Notification on destroy

When the notification is destroyed we should also dispose the underneath GLib
object, and ensure that we don't dispose this twice.

In order to avoid this, don't destroy transient notifications that have been
already been removed and only destroy the resident notifications on activation
if they have not been destroyed earlier.
Thus connect after to the 'activated' signal and once the default handler has
been called destroy the notification if not requested earlier.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agomessageTray: Inherit Notification, Source and NotificationPolicy from GObject
Marco Trevisan (Treviño) [Mon, 13 May 2019 21:32:31 +0000 (23:32 +0200)]
messageTray: Inherit Notification, Source and NotificationPolicy from GObject

Register notifications, sources and policies as GObject gtypes so that they can
be passed in signals and use native properties and signals.

Reimplement all the extending classes.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agokeyboard: Add KeyboardManager to manage the lifetime of the keyboard actor
Marco Trevisan (Treviño) [Wed, 28 Aug 2019 21:52:52 +0000 (23:52 +0200)]
keyboard: Add KeyboardManager to manage the lifetime of the keyboard actor

The Keyboard class used to be both a view and controller class, however in order
to make the keyboard a native Clutter.Actor, we need to separate the widget from
the controller class, so that we can manage the actor lifetime from the JS side.

Thus, initialize the keyboard actor on the Keyboard constructor and create a
KeyboardManager class to manage its state and lifetime.

Add proxy methods for the public functions that were used by other shell
components

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agobackground: Rename Background 'changed' signal to 'bg-changed'
Marco Trevisan (Treviño) [Fri, 12 Jul 2019 22:56:12 +0000 (01:56 +0300)]
background: Rename Background 'changed' signal to 'bg-changed'

Meta.Background has already a 'changed' signal and not to confuse the source
signal with the wrapper one, rename the wrapper class signal into 'bg-changed'.

This will be relevant when we'll inherit from Meta.Background, as signal
emissions from the base class could interfere with the wanted derived class
behavior and with the the grouping of successive changes into a single ::change
emission.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agocalendar: Use GDateTime for selected-date-changed signal
Marco Trevisan (Treviño) [Mon, 2 Sep 2019 19:18:54 +0000 (21:18 +0200)]
calendar: Use GDateTime for selected-date-changed signal

Since GObject derived classes can't use JS objects as signal parameters, let's
go native and use GLib.DateTime instead.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agoappDisplay: Use an St.Widget as base actor for FolderView
Marco Trevisan (Treviño) [Sat, 31 Aug 2019 03:21:10 +0000 (05:21 +0200)]
appDisplay: Use an St.Widget as base actor for FolderView

This is needed to make possible to convert BaseAppView into a St.Widget so that
all views can inherit from it.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agoanimation: Don't sync animation sizes on change
Marco Trevisan (Treviño) [Fri, 14 Jun 2019 14:44:19 +0000 (17:44 +0300)]
animation: Don't sync animation sizes on change

When the actor size changes, we might incur into an allocation cycle.

This was introduced by commit b6ec02ce, but when the animation will be an actor
itself, there will be no need to update the children size on actor size update,
as this will be managed by the actor allocation cycle itself.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1384
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agocleanup: Rename signals/methods that will conflict with Clutter.Actor
Marco Trevisan (Treviño) [Wed, 28 Aug 2019 20:06:14 +0000 (23:06 +0300)]
cleanup: Rename signals/methods that will conflict with Clutter.Actor

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agoscreenShield: Compute lock timeout fade duration using animation settings
Marco Trevisan (Treviño) [Fri, 4 Oct 2019 09:04:43 +0000 (11:04 +0200)]
screenShield: Compute lock timeout fade duration using animation settings

When the screen is marked as idle, we normally start a fading animation and
a timeout to finally lock the screen. This timeout is configured using the
fade time if no longer delay is set in settings.

However if animations are disabled or slowed-down/up, the fade time is
different from the STANDARD_FADE_TIME and so we might end up showing the
lock shield without actually locking for STANDARD_FADE_TIME in the disabled
or slowed-up animations case, or locking too early in case of slowed-down
animations.

So, just adjust the timeout time using the same logic of animations so that
this value is matching all the times.

Related to https://gitlab.gnome.org/GNOME/gnome-shell/issues/1744

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/749

7 years agovolume: Show indicator when microphone is active
Florian Müllner [Sat, 14 Sep 2019 12:41:08 +0000 (14:41 +0200)]
volume: Show indicator when microphone is active

Devices like cameras and microphones are privacy sensitive, as they can
be used to spy on the user. We cannot prevent non-sandboxed apps from
doing that, but as we already track when the microphone is recording,
we can at least show an indicator to make sure it doesn't happen behind
the user's back.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/729

7 years agost: Remove color from ClutterActor pick virtual function
Daniel van Vugt [Mon, 14 Oct 2019 07:20:49 +0000 (15:20 +0800)]
st: Remove color from ClutterActor pick virtual function

It's unused since commit mutter@14c706e51

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/759

7 years agoReplace Clutter.Point by Graphene.Point
Georges Basile Stavracas Neto [Wed, 20 Feb 2019 19:54:29 +0000 (16:54 -0300)]
Replace Clutter.Point by Graphene.Point

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/421

7 years agost: Replace ClutterSize by graphene_size_t
Georges Basile Stavracas Neto [Wed, 20 Feb 2019 13:33:42 +0000 (10:33 -0300)]
st: Replace ClutterSize by graphene_size_t

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/421

7 years agoReplace ClutterVertex by graphene_point3d_t
Georges Basile Stavracas Neto [Wed, 20 Feb 2019 13:01:07 +0000 (10:01 -0300)]
Replace ClutterVertex by graphene_point3d_t

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/421

7 years agodoap: Clean up list of maintainers
Florian Müllner [Wed, 16 Oct 2019 10:23:37 +0000 (12:23 +0200)]
doap: Clean up list of maintainers

Move historic entries from "maintainers" to "authors" to reflect
current reality :-(

7 years agosearch: Activate SearchResult from the result itself
Marco Trevisan (Treviño) [Wed, 16 Oct 2019 00:23:22 +0000 (02:23 +0200)]
search: Activate SearchResult from the result itself

Search result views can include also objects that are not inheriting from
SearchResults (such as the AppIcon) that has not any 'activate' signal, to
connect to. Since we want to enforce a more formal interface, we want to
have just a simpler requirement as an activate() method.

So, instead using the 'activate' signal in SearchResult to activate a result
via SearchResultsBase just implement activate() in the result.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/765

7 years agosearch: Rename SearchResults to SearchResultsView
Marco Trevisan (Treviño) [Wed, 16 Oct 2019 09:31:44 +0000 (11:31 +0200)]
search: Rename SearchResults to SearchResultsView

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/765

7 years agoshell-screenshots: Do not pass a clip for window screenshots
Robert Mader [Mon, 14 Oct 2019 15:13:11 +0000 (17:13 +0200)]
shell-screenshots: Do not pass a clip for window screenshots

Design team wants us not to clip away the shadows, lets do that.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/762

7 years agost/scroll-view: Remove container foreach vfunc
Marco Trevisan (Treviño) [Wed, 2 Oct 2019 20:41:04 +0000 (22:41 +0200)]
st/scroll-view: Remove container foreach vfunc

foreach_with_internals vfunc is deprecated for long time and not used
anymore, so remove it

Related to: https://gitlab.gnome.org/GNOME/mutter/merge_requests/816

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/747

7 years agoenvironment: Only disable unredirection of ongoing transitions
Florian Müllner [Mon, 14 Oct 2019 07:47:38 +0000 (09:47 +0200)]
environment: Only disable unredirection of ongoing transitions

When a transition is set up with a delay, it may be removed before it
actually started. We won't get a ::stopped signal in that case, with
the result that we currently end up with a mismatched unredirection
disabling.

Address this by only disable unredirection once the transition has
actually started.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1788

7 years agoUpdated Spanish translation
Daniel Mustieles [Mon, 14 Oct 2019 07:15:23 +0000 (09:15 +0200)]
Updated Spanish translation

7 years agoBump version to 3.35.1
Florian Müllner [Sat, 12 Oct 2019 18:17:32 +0000 (20:17 +0200)]
Bump version to 3.35.1

Update NEWS.

7 years agomain: Show a warning when gdm is missing
Matthias Clasen [Sat, 8 Jun 2013 17:33:58 +0000 (13:33 -0400)]
main: Show a warning when gdm is missing

If we are not running under gdm, some functionaliy (such as
the lock screen) does not work, and we should inform the
user about this.

https://bugzilla.gnome.org/show_bug.cgi?id=701212

7 years agomain: Show a warning when running as root
Matthias Clasen [Sat, 8 Jun 2013 17:32:35 +0000 (13:32 -0400)]
main: Show a warning when running as root

gnome-session used to show a dialog in this case, but a
notification is more natural nowadays. Doing it in gnome-shell
avoids complicated synchronization between gnome-session and
gnome-shell.

https://bugzilla.gnome.org/show_bug.cgi?id=701212

7 years agojs: Replace Tweener time leftovers with ease duration
Marco Trevisan (Treviño) [Thu, 10 Oct 2019 00:14:28 +0000 (02:14 +0200)]
js: Replace Tweener time leftovers with ease duration

In some places we were not properly animating the actors as still using the
non-existent 'time' property instead of 'duration'

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/758

7 years agoanimation: Finish porting to clutter transitions
Marco Trevisan (Treviño) [Wed, 9 Oct 2019 03:14:15 +0000 (05:14 +0200)]
animation: Finish porting to clutter transitions

Animation when stopping the spinner was still using the old
parameters that not working, although if silently failing.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/758

7 years agoBump version to 3.34.1
Florian Müllner [Tue, 8 Oct 2019 21:25:35 +0000 (23:25 +0200)]
Bump version to 3.34.1

Update NEWS.

7 years agoRevert "windowManager: Use new reorder_workspace() API"
Florian Müllner [Tue, 8 Oct 2019 18:42:20 +0000 (20:42 +0200)]
Revert "windowManager: Use new reorder_workspace() API"

It's too easy to break, so revert to the old code until we
figure out a fix.

This reverts commit ff9bb5399b1d22fceaf00c9fc8e0058f24af96cc.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1497

7 years agowindowManager: Handle reordering of workspaces
Florian Müllner [Tue, 8 Oct 2019 18:27:34 +0000 (20:27 +0200)]
windowManager: Handle reordering of workspaces

MetaWorkspaceManager gained the ability to reorder workspaces, so make
sure to pick up the new order when that happens.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1497

7 years agoibusCandidatePopup: Use an internal actor to track IM focus position
Carlos Garnacho [Tue, 8 Oct 2019 10:22:34 +0000 (12:22 +0200)]
ibusCandidatePopup: Use an internal actor to track IM focus position

We share this actor with other shell menus, which arguably track a different
"cursor" as we care of the caret/anchor text positions, and menus care about
pointer click coordinates.

Use a standalone actor for this, so popups/IM are entirely decoupled.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1571
7 years agoshell-global: Ignore modal operations if we have no compositor
Marco Trevisan (Treviño) [Wed, 2 Oct 2019 19:56:05 +0000 (21:56 +0200)]
shell-global: Ignore modal operations if we have no compositor

Modal dialog actions might be triggered during display closing, and in such
cases we should just ignore the requests.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/746

7 years agoshell-global: Disconnect from stage events on X11 display close
Marco Trevisan (Treviño) [Wed, 2 Oct 2019 19:24:37 +0000 (21:24 +0200)]
shell-global: Disconnect from stage events on X11 display close

As per GNOME/mutter!385 [1], the compositor is finalized an its pointer
cleared on display close.

However, since the shell reacts to such events instead of controlling them,
when the shell is stopping or restarting and its display closing, the shell
stage destroys its children after the display closing is finished and during
this process the focus is unset, causing focus_actor_changed() to be called
and thus calls to meta_stage_is_focused() which deferences the now NULL
compositor, leading to a crash on shutdown.

Since after this point we should just ignore any stage event, disconnect
from them all.

[1] https://gitlab.gnome.org/GNOME/mutter/merge_requests/385

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/746

7 years agoshellDBus: Don't assume devices have a node
Florian Müllner [Fri, 20 Sep 2019 19:08:45 +0000 (21:08 +0200)]
shellDBus: Don't assume devices have a node

Clutter.InputDevice.get_device_node() may return null. Handle that
case when building the 'AcceleratorActivated' vardict parameter.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1641

7 years agonetworkAgent: add support for SAE secrets
Lubomir Rintel [Fri, 4 Oct 2019 12:21:25 +0000 (14:21 +0200)]
networkAgent: add support for SAE secrets

NetworkManager supports "WPA3 Personal" networks for some time now, they
use the SAE authentication. Add support for it alongside other
password-based mechanisms.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/751

7 years agoUpdated Danish translation
Alan Mortensen [Sun, 6 Oct 2019 16:16:32 +0000 (18:16 +0200)]
Updated Danish translation

7 years agomain, util: Notify systemd once we are fully initialised
Iain Lane [Fri, 4 Oct 2019 11:11:06 +0000 (12:11 +0100)]
main, util: Notify systemd once we are fully initialised

If graphical applications want to start from systemd units, they need to
start after we're properly ready to display them. This is particularly
important under X where `_GTK_FRAME_EXTENTS` and other xprops are needed
to have the right theming.

We're doing this in an idle callback so that the dynamic starting of
`gnome-session-x11-service.target` (which launches `gsd-xsettings`) as
the result of a signal emission happens before us signalling we're ready
for later things to start.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/750

7 years agoUpdate Japanese translation
Ryuta Fujii [Fri, 4 Oct 2019 14:54:06 +0000 (14:54 +0000)]
Update Japanese translation

7 years agoUpdate Japanese translation
Ryuta Fujii [Fri, 4 Oct 2019 14:52:49 +0000 (14:52 +0000)]
Update Japanese translation

7 years agolightbox: Show the actor before easing it
Marco Trevisan (Treviño) [Thu, 3 Oct 2019 13:13:21 +0000 (15:13 +0200)]
lightbox: Show the actor before easing it

As per clutter optimizations in should_skip_implicit_transition() any
transition will be ignored if applied to an actor with unmapped clones.

Since we initialize the lightbox as hidden, when we use it standalone (as it
happens for the long fade in screenShield) the transition will be ignored.
This causes the lockscreen fade-out after the idle delay not to work, but
instead to have an apparently locked system that is instead not locked at
all.

So, just ensure that the lightbox actor is visible before applying to it any
transition.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1683

7 years agoibusManager: Cancel the preload engines timeout on clear
Marco Trevisan (Treviño) [Wed, 25 Sep 2019 20:15:38 +0000 (22:15 +0200)]
ibusManager: Cancel the preload engines timeout on clear

This is created when preloading but never cancelled if ibus disappears

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/743

7 years agoibusManager, inputMethod: Cancel async ibus calls chain on disconnect
Marco Trevisan (Treviño) [Wed, 25 Sep 2019 18:56:46 +0000 (20:56 +0200)]
ibusManager, inputMethod: Cancel async ibus calls chain on disconnect

The shell tries to spawn the ibus daemon on startup if unavailable, however
as per commit 8adfc5b1 we also force restarting it once the X11 server is
available.
Unfortunately this could cause a race if we disconnect while we were already
connected to an ibus daemon, but still in the process of going through the
various nested calls.
In fact the ::disconnect callback didn't stop any further async ibus call
that, even if failing, would have eventually triggered the emission of a
'ready' signal and to the Keyboard's callback, leading under X11 to a full
grab owned by ibus daemon.

In order to avoid this and keep control of the calls order, use in both
IbusManager and InputMethod a cancellable that is setup before connecting to
the bus, and that is cancelled on disconnection.
Then handle the finish() calls properly, using try/catch to validate the
returned value, taking in account the potential error and just not
proceeding in case of cancellation.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1712

7 years agoinputMethod: Do not change IBus.Capabilite by focus events
Takao Fujiwara [Tue, 1 Oct 2019 10:53:20 +0000 (19:53 +0900)]
inputMethod: Do not change IBus.Capabilite by focus events

gnome-shell calls ibus_input_context_focus_in() in InputMethod.focus_in()
but the event is not actually forwarded to panels and engines in GNOME
Wayland because gnome-shell changes IBus.Capabilite by focus events and
disables IBus.Capabilite.FOCUS when ibus_input_context_focus_in() is called.

IBus.Capabilite is assumed a fixed value per input context in the
first place and it should not be changed by focus events.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/573

7 years agoUpdated Danish translation
Ask Hjorth Larsen [Wed, 2 Oct 2019 03:35:36 +0000 (05:35 +0200)]
Updated Danish translation

7 years agoUpdated Czech translation
Marek Černocký [Wed, 2 Oct 2019 01:57:00 +0000 (03:57 +0200)]
Updated Czech translation

7 years agoUpdated Slovenian translation
Matej Urbančič [Sat, 28 Sep 2019 19:13:30 +0000 (21:13 +0200)]
Updated Slovenian translation

7 years agoUpdated Slovenian translation
Matej Urbančič [Thu, 26 Sep 2019 20:02:27 +0000 (22:02 +0200)]
Updated Slovenian translation

7 years agoUpdate Friulian translation
Fabio Tomat [Thu, 26 Sep 2019 14:20:38 +0000 (14:20 +0000)]
Update Friulian translation

7 years agoUpdate Slovak translation
Dušan Kazik [Thu, 26 Sep 2019 06:43:01 +0000 (06:43 +0000)]
Update Slovak translation

7 years agoshell-util: Handle NULL from meta_window_get_image()
Florian Müllner [Mon, 23 Sep 2019 11:46:05 +0000 (13:46 +0200)]
shell-util: Handle NULL from meta_window_get_image()

Until commit 506b75fc7f3 we got away with not handling a NULL return
value, as cairo_surface_destroy() deals with a NULL surface; the same
isn't true for get_width/get_height, so guard to code in question to
prevent a crash.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1678

7 years agoUpdate Dutch translation
Nathan Follens [Wed, 25 Sep 2019 11:11:56 +0000 (11:11 +0000)]
Update Dutch translation

7 years agomain: Remove NOTIFY_SOCKET from environment
Benjamin Berg [Mon, 23 Sep 2019 09:04:18 +0000 (11:04 +0200)]
main: Remove NOTIFY_SOCKET from environment

It is only used exactly once to notify systemd about the service
startup. So unset it as soon as possible as it can leak into
subprocesses we spawn otherwise.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/741

7 years agoslider: Unset signal IDs when ending the slider drag
Jonas Dreßler [Sun, 22 Sep 2019 11:31:02 +0000 (13:31 +0200)]
slider: Unset signal IDs when ending the slider drag

Unset the signal IDs we connected to when starting the drag. Otherwise
we get error messages if a touch drag is ended after a mouse drag
happened because the signal IDs are still set but no signals are
connected.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/740

7 years agoUpdate Japanese translation
Ryuta Fujii [Sun, 22 Sep 2019 11:29:14 +0000 (11:29 +0000)]
Update Japanese translation

7 years agoUpdate Japanese translation
Ryuta Fujii [Sun, 22 Sep 2019 11:27:23 +0000 (11:27 +0000)]
Update Japanese translation

7 years agoshell-util: Do not scale the clip in get_content_for_window_actor()
Robert Mader [Sat, 14 Sep 2019 17:24:36 +0000 (19:24 +0200)]
shell-util: Do not scale the clip in get_content_for_window_actor()

This is now handled in Mutter. Also, respect the result size instead
of assuming it to be equal to the clip size, as the clip takes actor
coordinates while the result takes buffer coordinates.

This can be fixed in a future API iteration.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/728

7 years agoUpdate Galician translation
Fran Dieguez [Fri, 20 Sep 2019 17:19:17 +0000 (17:19 +0000)]
Update Galician translation

7 years agoscreenShield: Stop using deprecated actor property
Florian Müllner [Fri, 20 Sep 2019 11:14:40 +0000 (13:14 +0200)]
screenShield: Stop using deprecated actor property

Both LoginDialog and UnlockDialog are now actor subclasses, so stop
using the deprecated actor delegate that will trigger a warning.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/736

7 years agounlockDialog: Use inheritance instead of composition
Florian Müllner [Fri, 20 Sep 2019 11:17:40 +0000 (13:17 +0200)]
unlockDialog: Use inheritance instead of composition

The screen shield creates the unlock dialog based on the session mode.

However since commit 0c0d76f7d6990 turned LoginDialog into an actor
subclass (while UnlockDialog kept using the delegate pattern), it is
no longer possible to handle both objects the same way without warnings.

Allow this again by turning UnlockDialog into an actor subclass as well.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/736

7 years agologinDialog: Stop using deprecated actor property
Florian Müllner [Fri, 20 Sep 2019 11:09:13 +0000 (13:09 +0200)]
loginDialog: Stop using deprecated actor property

Commit 0c0d76f7d6990 made the class an actor subclass, so the actor
property is just a deprecated synonym of the object itself.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/736

7 years agoenvironment: Try harder to find a transition
Florian Müllner [Fri, 20 Sep 2019 00:50:36 +0000 (02:50 +0200)]
environment: Try harder to find a transition

When easing, we need the transition of one of the involved properties
to connect our callbacks. Currently we simply get the transition for
the first property, however as Clutter optimizes the case where a
property doesn't actually change, that transition may be NULL even
though we still animate other properties.

So instead of only looking at the transition of the first property,
try to find a transition for any of the involved properties.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1572

7 years agolayout: Don't use the actors pick workaround on update regions
Marco Trevisan (Treviño) [Thu, 19 Sep 2019 09:46:39 +0000 (11:46 +0200)]
layout: Don't use the actors pick workaround on update regions

As per introduction of geometric picking in mutter [1], the workaround we
had consisting in picking all the actors to ensure that all the stage
projections were computed to get valid actors stage-transformed coordinates
and sizes is not working anymore as there is more caching involved.

However since this can be now handled properly in mutter [2], initializing a
valid projection matrix since the beginning, we can get rid of the
workaround.

[1] https://gitlab.gnome.org/GNOME/mutter/commit/14c706e51
[2] https://gitlab.gnome.org/GNOME/mutter/merge_requests/803

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/734

7 years agorenameFolderMenu: Use a custom menu item inheriting from PopupBaseMenuItem
Marco Trevisan (Treviño) [Sat, 14 Sep 2019 01:03:15 +0000 (03:03 +0200)]
renameFolderMenu: Use a custom menu item inheriting from PopupBaseMenuItem

The RenameFolderMenu uses the internal box as a menu item, while PopupMenu
expects to have PopupBaseMenuItem based children with a delegate set.

Instead of using a custom menu with a customized box acting as menu
item,just add a RenameFolderMenuItem that inherits from the parent,
adjusting the features as we need them. In fact, the rename folder menu item
doesn't need any label, padding or default styling so we can reuse
PopupMenuBaseItem after we use our styling properties and we set the
Ornament to HIDDEN.

To get the proper style in place, define rename-folder-popup and
rename-folder-popup-item to override the default popup-menu-item rule
padding instead of using margins.

Pass the menu item as menu's focusActor as this will key-focus it on pop-up,
by overriding the key_focus_in() vfunc we can then delegate the focus
handling to the entry's clutter-text.

Also override the map() vfunc in order to update the entry's content before
mapping the entry.

Finally, use the item's activate method in order to tell the parent menu
we're done with it and that the menu can be closed.

As consequence we can also remove the menu's popup() method, and just use
the default open().

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/720

7 years agorenameFolderMenu: Move to non-legacy coding style
Marco Trevisan (Treviño) [Fri, 13 Sep 2019 03:19:02 +0000 (05:19 +0200)]
renameFolderMenu: Move to non-legacy coding style

Use proper indentation on multi-line methods calls and use single quotes on
button label.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/720

7 years agorenameFolderMenu: Set the entry as menu focus actor
Marco Trevisan (Treviño) [Wed, 11 Sep 2019 18:09:08 +0000 (20:09 +0200)]
renameFolderMenu: Set the entry as menu focus actor

When the rename folder menu is opened the text entry is expected to be
focused and selected for a quick editing.
While this is required it doesn't actually happens since PopupMenu by
default gives the key focus to the source actor, that is then free to pass
the key focus to the menu if there's an user interaction.

In this case however, we want the text entry to be focused once we prompt
the menu, so just use the PopupMenu's focusActor property to ensure it will
handle it for us.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1604
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/720

7 years agopopupMenu: Add focusActor property to define the default focus actor
Marco Trevisan (Treviño) [Fri, 13 Sep 2019 03:15:41 +0000 (05:15 +0200)]
popupMenu: Add focusActor property to define the default focus actor

The PopupMenuManager is supposed to grab and focus the menu actors, with
normal menus we always need to grab the actual menu but set the key focus to
the source actor so that it will be able to move the focus to the menu
child, if requested.

However there are menus such as the RenameFolderMenu that requires the
key-focus once prompted, so provide a focusActor property (defaulting to the
sourceActor) that can be set in order to define the actor to give the
keyboard focus to, when the menu is popped-up.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1604
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/720

7 years agopopupBaseMenuItem: Add support for Hidden Ornament
Marco Trevisan (Treviño) [Fri, 13 Sep 2019 15:59:16 +0000 (17:59 +0200)]
popupBaseMenuItem: Add support for Hidden Ornament

The menu item ornament is used to put dots or checks in menus or otherwise
to define a padding for a label.
However in some cases we want to create a menu item with no left (in ltr)
padding.

In order to do that, define a HIDDEN Ornament mode that completely hides the
ornament actor.

The naming here might be confusing as this should probably be called NONE,
while the default mode is the invisible one, but it's too late to change it
now.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/720

7 years agorenameFolderMenu: Don't save the source
Marco Trevisan (Treviño) [Wed, 11 Sep 2019 18:14:27 +0000 (20:14 +0200)]
renameFolderMenu: Don't save the source

The source actor is already tracked by the PopupMenu internally as
sourceActor, while nothing in RenameFolderMenu uses the source, so we can
drop this.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/720

7 years agofolderIcon: Remove duplicated addMenu call
Marco Trevisan (Treviño) [Fri, 13 Sep 2019 03:17:03 +0000 (05:17 +0200)]
folderIcon: Remove duplicated addMenu call

The RenameFolderMenu is added already to its menu manager, so no need to
repeat the operation.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/720

7 years agoworkspace: Fix an incorrect signal check
Jonas Dreßler [Fri, 20 Sep 2019 09:37:26 +0000 (11:37 +0200)]
workspace: Fix an incorrect signal check

While commit 3094f863 was intended to cancel the ongoing idle hide
timeout before we start a new one, a mistake slipped in there while
rebasing: Obviously we should check if the signal id is NOT 0 here.

This didn't prevent timeouts being started while old ones are still
running and did override `this._idleHideOverlayId`, which caused the old
timeouts to run indefinitely after an overlay actor was destroyed
because we fail early (and don't return TRUE) in `_idleHideOverlay()`.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/735

7 years agoappDisplay: Animate DnD app icons at the position they were dropped
Jonas Dreßler [Sun, 15 Sep 2019 09:45:47 +0000 (11:45 +0200)]
appDisplay: Animate DnD app icons at the position they were dropped

Indicate whether dropping an app icon was successful or not by using the
newly added `animateLaunchAtPos()` API of AppIcon which starts a zoom
out animation of the icon at the position the drop happened.

To get the position of the drag actor, we have to forward the arguments
passed to `acceptDrop()` and `handleDragOver()` to the internal drag
handlers of the WorkspaceThumbnails. We can use this position directly
without transforming it to stage coordinates because the actor is a
child of `Main.uiGroup` and the animation actor will also be a child of
this container.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/121

7 years agoappDisplay: Add API to animate launch at given position
Jonas Dreßler [Sun, 15 Sep 2019 09:40:27 +0000 (11:40 +0200)]
appDisplay: Add API to animate launch at given position

Add a `animateLaunchAtPos()` method to the AppIcon class to animate the
launch of an app at a given position. This allows for a visual
indication of whether dropping an app icon using DnD was successful at
the position the drop happened in a later commit.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/121

7 years agoworkspace: Return results of forwarded acceptDrop
Jonas Dreßler [Thu, 2 May 2019 15:49:21 +0000 (17:49 +0200)]
workspace: Return results of forwarded acceptDrop

Return the results of calls to acceptDrop that we forwarded to the
Workspace object.

This fixes a bug where app icons that were dragged and released above a
window clone would get animated back to their original position
(indicating that nothing happened) even though they opened correctly.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/121

7 years agooverview: Only accept AppIcon drops if the app can open a new window
Jonas Dreßler [Thu, 2 May 2019 15:04:03 +0000 (17:04 +0200)]
overview: Only accept AppIcon drops if the app can open a new window

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/121

7 years agoshell-app: Never allow opening new windows while an app is starting
Jonas Dreßler [Thu, 1 Aug 2019 15:22:50 +0000 (17:22 +0200)]
shell-app: Never allow opening new windows while an app is starting

We allow opening new windows as a fallback in case the app doesn't give
us explicit information about it, but we don't want to allow opening new
windows if we're unable to ask for this information (we can only use the
APIs to get this information while the app is RUNNING).

So always return FALSE in case the app is STARTING, always return TRUE
in case the app is STOPPED (starting an app always opens a new window)
and go through the usual checks in case the app is RUNNING (and
eventually fall back to FALSE).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/121

7 years agoworkspace: Use AppIcon.app to check action-support by the drag source
Jonas Dreßler [Fri, 2 Aug 2019 10:58:34 +0000 (12:58 +0200)]
workspace: Use AppIcon.app to check action-support by the drag source

`AppIcon.shellWorkspaceLaunch()` can easily be replaced by checking for
`AppIcon.app` and calling `AppIcon.app.open_new_window()` directly.

For compatibility and to prevent breaking extensions implementing the
function, keep supporting the `shellWorkspaceLaunch` API in AppIcon
while logging a deprecation warning. Also keep supporting the API on
drag sources (without deprecating it) to allow extensions to define
custom actions on their drag sources.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/121

7 years agointrospect: Check whitelist also for GetRunningWindows()
Jonas Ådahl [Wed, 18 Sep 2019 12:57:48 +0000 (14:57 +0200)]
introspect: Check whitelist also for GetRunningWindows()

Otherwise the xdg-desktop-portal-gtk screen cast widget won't work.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/732

7 years agost: Fix box-shadow drawing with prerendered_texture
Daniel García Moreno [Wed, 18 Sep 2019 14:50:49 +0000 (16:50 +0200)]
st: Fix box-shadow drawing with prerendered_texture

The use of box-shadow on a StWidget that has a background-gradient was
not been rendered correctly, the shadow borders was calculated inside
the st_theme_node_prerender_shadow function and in the case that we've a
prerendered_texture the max_borders was not calculated and are 0.

This patch creates a new static function to compute shadow maximum
borders copying the code from st_theme_node_prerender_shadow, and call
this new method in the case that we've a prerendered_texture.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1186

7 years agoworkspace: Remove unused properties of WindowClone
Jonas Dreßler [Mon, 19 Aug 2019 09:54:42 +0000 (11:54 +0200)]
workspace: Remove unused properties of WindowClone

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/683

7 years agoviewSelector: Only reset search entry if it has key focus
Jonas Dreßler [Sun, 18 Aug 2019 10:49:42 +0000 (12:49 +0200)]
viewSelector: Only reset search entry if it has key focus

If the search entry does not have any text typed in and a button press
happens outside of the search entry, we set key focus to NULL to make
the search entry appear unfocused.

This is quite intrusive and can easily cause unwanted focus changes, so
change the captured-event handler to only call `reset()` if the search
entry actually is focused.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/683

7 years agoworkspace: Reset idle hide timeout for overlays on reentry
Jonas Dreßler [Tue, 12 Feb 2019 12:04:55 +0000 (13:04 +0100)]
workspace: Reset idle hide timeout for overlays on reentry

Instead of returning and waiting until the old timeout is finished,
start a new idle hide timeout for the overlay when the pointer enters a
window clone. This makes sure the timeout for hiding the overlay after
the pointer left the clone mostly stays the same (except when leaving
the clone via the title or the close button).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/683

7 years agoworkspace: Make title of overlay reactive
Jonas Dreßler [Tue, 12 Feb 2019 12:04:55 +0000 (13:04 +0100)]
workspace: Make title of overlay reactive

Also make the title of the overlay reactive so we can keep the overlay
visible if the mouse is hovering over the title.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/683

7 years agoworkspace: Continue overlay idle hide timeout when pointing at close button
Jonas Dreßler [Tue, 12 Feb 2019 12:04:55 +0000 (13:04 +0100)]
workspace: Continue overlay idle hide timeout when pointing at close button

While it makes sense to remove the timeout in every other case, restart it
if the pointer is hovering over the close button to make sure the overlay
will be hidden afterwards.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/683

7 years agoUpdate Norwegian Bokmål translation
Kjartan Maraas [Wed, 18 Sep 2019 13:34:34 +0000 (13:34 +0000)]
Update Norwegian Bokmål translation

7 years agoUpdate French translation
Charles Monzat [Tue, 17 Sep 2019 18:47:13 +0000 (18:47 +0000)]
Update French translation